/*
    数组的实例方法：
      sort： 
      作用：数组排序
      特点：会改变原数组，返回排序好的数组
      重点 - > 排序规则：
        1. 默认情况下（不传参数），sort是根据字符串的ACSII值进行排序的，因此这时，sort只能排序字符串
           并且是 升序 排列的，即就是从 A -Z 顺序
        2. 如果排序数组中的元素不是字母字符串，那么就需要通过给sort传入排序规则函数来指定排序规则

 */
const names_en = ['Durant', 'Curry', 'Butler', 'Kobe', 'Jordan', 'James']
const names_zh = ['杜兰特', '库里', '巴特勒', '科比', '乔丹']
const nums = [45, 19, 32, 7, 23]
const girls = [
  {
    name: '王昭君',
    height: 170
  }, {
    name: '貂蝉',
    height: 172
  }, {
    name: '西施',
    height: 162
  }, {
    name: '杨玉环',
    height: 169
  }
]
// 1. 默认情况
// names_en.sort()
// console.log(names_en)// 升序 A-Z
// console.log(names_en.reverse())
// 2. 降序排列 -> localCompare -> 本地比较 -> 既可以比较英文 还有 比较 中文
// names_en.sort((name1, name2) => name2.localeCompare(name1))
// console.log(names_en)

// 3. 排序中文 -> 根据拼音 字母的 顺序 进行 排列 
// 升序
// names_zh.sort((name1, name2) => name1.localeCompare(name2))
// 降序
// names_zh.sort((name1, name2) => name2.localeCompare(name1))
// console.log(names_zh)

// 4. 排序数字
// nums.sort((x, y) => x - y)
// nums.sort((x, y) => y - x)
// console.log(nums)

// 5. 排序对象
// girls.sort((o1, o2) => o1.height - o2.height)
girls.sort((o1, o2) => o2.height - o1.height)
console.log(girls)